#pragma once

#include "../umlmodel_global.h"

#include "DataType.h"

namespace uml {

/// <summary>
/// PrimitiveType
/// A PrimitiveType defines a predefined DataType, without any substructure. A
/// PrimitiveType may have an algebra and operations defined outside of UML, for
/// example, mathematically.
/// </summary>
class UMLMODEL_EXPORT PrimitiveType : public DataType {

public: // Constructors and destructors
    explicit PrimitiveType(const QString& umlType="uml::PrimitiveType");

public: // JsonSerializable override
    void fromJson(const QJsonObject& json, QStringList& errorList) override;
    void toJson(QJsonObject& json) override;

};

} // namespace uml
